﻿#ifndef CLASSFORIPMASKCALCULATE_H
#define CLASSFORIPMASKCALCULATE_H

#include "BaseChMushSte/ipmaskcalculate.h"

#include <QWidget>

namespace Ui {
class ClassForIPMaskCalculate;
}

class ClassForIPMaskCalculate : public QWidget
{
    Q_OBJECT

public:
    explicit ClassForIPMaskCalculate(QWidget *parent = nullptr);
    ~ClassForIPMaskCalculate();

private slots:
    /*
     * 计算 按钮按下事件 激发的合规判断
     * */
    void on_pusButIPMask1_1_pressed();

    /*
     * 前缀编辑事件
     * */
    void on_linEdOfIPPrefix1_1_textEdited(const QString &arg1);

    /*
     * IP地址输入框编辑事件 第1位
     * */
    void on_linEdOfIPAddr1_0_textEdited(const QString &arg1);

    /*
     * IP地址输入框编辑事件 第2位
     * */
    void on_linEdOfIPAddr1_1_textEdited(const QString &arg1);

    /*
     * IP地址输入框编辑事件 第3位
     * */
    void on_linEdOfIPAddr1_2_textEdited(const QString &arg1);

    /*
     * IP地址输入框编辑事件 第4位
     * */
    void on_linEdOfIPAddr1_3_textEdited(const QString &arg1);

    /*
     * 清空按钮的单击事件
     * */
    void on_pusButClear_clicked();

    /*
     * 计算按钮 的抬起 事件
     * */
    void on_pusButIPMask1_1_released();

private:
    Ui::ClassForIPMaskCalculate *ui;

    // 子网计算类
    IPMaskCalculate* pObjIpMaskCal = nullptr;

    // IPV4 子网计算函数
    void funVoidOfIpMaskCal();

    /*
     *  判断前缀输入是否合规
     * */
    bool funBoolOfPrefixLegal(const QString &str) const;

    /*
     * 判断IP输入是否合规
     * */
    bool funBoolOfIPLegal(const QString &str) const;

    /*
     * 控件初始化函数
     * */
    void funVoidControlInitialize();

    /*
     * 清空 函数
     * 用于控件内容的清空等
     * */
    void funVoidClear();
};

#endif // CLASSFORIPMASKCALCULATE_H
